package com.repair.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.repair.entity.RepairTrack;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

public interface RepairTrackService extends IService<RepairTrack> {
    /**
     * 添加轨迹记录
     */
    void addTrack(Long orderId, Long repairmanId, Double latitude, Double longitude, Integer status);

    /**
     * 获取订单相关的轨迹
     */
    List<RepairTrack> getOrderTracks(Long orderId);

    /**
     * 获取维修工的轨迹记录
     */
    List<RepairTrack> getRepairmanTracks(Long repairmanId);

    /**
     * 更新轨迹状态
     */
    void updateTrackStatus(Long trackId, Integer status);

    /**
     * 根据状态获取订单轨迹
     */
    List<RepairTrack> getOrderTracksByStatus(Long orderId, Integer status);

    /**
     * 获取维修工某天的轨迹数据
     */
    Map<String, Object> getRepairmanTracksByDate(Long repairmanId, LocalDate date);

    /**
     * 计算轨迹总距离（单位：公里）
     */
    double calculateTotalDistance(List<RepairTrack> tracks);

    /**
     * 计算活动时长（单位：小时）
     */
    double calculateTotalDuration(List<RepairTrack> tracks);
} 